package com.itheima.atom;

import java.util.concurrent.atomic.AtomicInteger;

public class AtomDemo {
    public static void main(String[] args) {
        AtomicInteger ai = new AtomicInteger(100);

        //    int get():   		 		获取值
        System.out.println(ai.get());//100

        //    int getAndIncrement():
        // 以原子方式将当前值加1，注意，这里返回的是自增前的值。
        System.out.println(ai.getAndIncrement());//100
        System.out.println(ai.get());//101

        //    int incrementAndGet():
        // 以原子方式将当前值加1，注意，这里返回的是自增后的值。
        System.out.println(ai.incrementAndGet());//102
        System.out.println(ai.get());//102

        //    int addAndGet(int data):
        // 以原子方式将参数与对象中的值相加，并返回结果。
        System.out.println(ai.addAndGet(10));//112
        System.out.println(ai.get());//112

        //    int getAndSet(int value):
        // 以原子方式设置为newValue的值，并返回旧值。
        System.out.println(ai.getAndAdd(10));//112
        System.out.println(ai.get());//122
    }
}
